﻿using System;

using Microsoft.VisualBasic;

using System.Text;

using System.Collections;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;




namespace SIP
{

    /// <summary>
    /// Fecha: 10-Octubre-2010
    /// Autor: Kenneth Bogantes
    /// Descripcion:Permite generar mensajes de alerta automaticamente 
    /// </summary>
    
    public class WebMsgBox
    {

        protected static Hashtable handlerPages = new Hashtable();

        private WebMsgBox()
        {

        }




        private static  string codigoError(int codigo) {
            string mens = "";

            switch (codigo) { 
               case 0: mens = "Operación realizada con exito";
                break;

               case 1: mens = "Ocurrio un error al procesar la transacción";
                break;

               case 2: mens = "Ocurrio un error al procesar la transacción";
                break;

               case 3: mens = "Registro Ingresado Correctamente";
                break;
               case 4: mens = "Registro Modificado Correctamente";
                break;
               case 5: mens = "Registro Eliminado Correctamente";
                break;
               case 6: mens = "No se encontraron resultados";
                break;


               default: mens = "Ocurrio un error desconocido";
                    break;

                
            
            
            
            }


            return mens;
        
        
        }






        /// <summary>
        /// Opcion 0: Operacion exitosa; Opcion 1: Error al procesar la transacción;Opcion 2: Registro Duplicado 
        /// Opcion 3: Registro Ingresado Correctamente; Opcion 4: Registro Modificado Correctamente;Opcion 5: Registro Eliminado Correctamente 
        /// Opcion 6: No se encontraron resultados; 
        /// </summary>
        public static void Show(int Message)

        {

            if (!(handlerPages.Contains(HttpContext.Current.Handler)))
            {

                Page currentPage = (Page)HttpContext.Current.Handler;

                if (!((currentPage == null)))
                {

                    Queue messageQueue = new Queue();

                    messageQueue.Enqueue(codigoError(Message));

                    handlerPages.Add(HttpContext.Current.Handler, messageQueue);

                    currentPage.Unload += new EventHandler(CurrentPageUnload);

                }

            }

            else
            {

                Queue queue = ((Queue)(handlerPages[HttpContext.Current.Handler]));

                queue.Enqueue(Message);

            }

        }




        /// <summary>
        /// Muestra los caracteres que se les transfiere por parametros
        /// </summary>
        public static void Show(string Message)
        {

            if (!(handlerPages.Contains(HttpContext.Current.Handler)))
            {

                Page currentPage = (Page)HttpContext.Current.Handler;

                if (!((currentPage == null)))
                {

                    Queue messageQueue = new Queue();

                    messageQueue.Enqueue(Message);

                    handlerPages.Add(HttpContext.Current.Handler, messageQueue);

                    currentPage.Unload += new EventHandler(CurrentPageUnload);

                }

            }

            else
            {

                Queue queue = ((Queue)(handlerPages[HttpContext.Current.Handler]));

                queue.Enqueue(Message);

            }

        }



        private static void CurrentPageUnload(object sender, EventArgs e)
        {

            Queue queue = ((Queue)(handlerPages[HttpContext.Current.Handler]));

            if (queue != null)
            {

                StringBuilder builder = new StringBuilder();

                int iMsgCount = queue.Count;

                builder.Append("<script language='javascript'>");

                string sMsg;

                while ((iMsgCount > 0))
                {

                    iMsgCount = iMsgCount - 1;

                    sMsg = System.Convert.ToString(queue.Dequeue());

                    sMsg = sMsg.Replace("\"", "'");

                    builder.Append("alert( \"" + sMsg + "\" );");

                }

                builder.Append("</script>");

                handlerPages.Remove(HttpContext.Current.Handler);

                HttpContext.Current.Response.Write(builder.ToString());

            }

        }

    }


}